# coding=utf-8
__author__ = 'liubin'

from flask import render_template
from flask.views import View
from flask.ext.login import login_required
from project import app

class IndexView(View):
    """
    index 的视图
    使用可插拔视图
    """
    # 规定可访问的方法
    methods = ['GET']
    # 装饰器放的位置
    decorators = [login_required]

    def dispatch_request(self, **kwargs):
        """
        请求的处理
        :return:
        """
        # 返回到指定模板
        return render_template('index.html')

# url映射
app.add_url_rule('/', view_func=IndexView.as_view('index'))
app.add_url_rule('/html/<path:htm>', view_func=IndexView.as_view('html'))

class TplView(View):
    """
    模板的视图
    使用可插拔视图
    """
    # 规定可访问的方法
    methods = ['GET']
    def dispatch_request(self, template, **kwargs):
        """
        请求的处理
        :return:
        """
        # 返回到指定模板
        print(template)
        return render_template(template + '.html')
# url映射
app.add_url_rule('/tpl/<path:template>', view_func=TplView.as_view('tpl'))

class TestView(View):
    """
    测试视图
    """
    methods = ['GET']
    def dispatch_request(self, **kwargs):
        return ''

app.add_url_rule('/test', view_func=TestView.as_view('test'))